﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain;
using System.Data.SqlClient;
using System.Data;

namespace DataAcess
{
    public class PublicidadData
    {
        public String literalConexion;

        public PublicidadData(String literalConexion)
        {
            this.literalConexion = literalConexion;
        }

        public Publicidad GetPublicidad(int idPublicidad)
        {
            Publicidad publicidad = new Publicidad();
            String SqlSelect = "SELECT * FROM Publicidad WHERE id_publicidad=" + idPublicidad;
            SqlConnection conexion = new SqlConnection(literalConexion);
            SqlCommand cmdSelect = new SqlCommand(SqlSelect, conexion);
            conexion.Open();
            SqlDataReader reader = cmdSelect.ExecuteReader();
            Imagen imagen = new Imagen();
           if (reader.Read())
            {
                publicidad.IdPublicidad = reader.GetInt32(0);
                publicidad.IdHotel = reader.GetInt32(1);
                int idImagen = reader.GetInt32(2);  
                imagen.IdImagen=(idImagen);
                publicidad.Imagen = imagen; 
                publicidad.Enlace = reader.GetString(3);

            }
            conexion.Close();
            return publicidad;
        }

       public void GuardarPublicidad(int idHotel, String enlace, byte[] imageBytes)
       {
           SqlConnection conexion = new SqlConnection(literalConexion);
           string sqlConsult = @"INSERT INTO Publicidad(id_hotel,enlace,imagen) VALUES(@idHotel, @enlace, @imageBytes)";
           
           SqlCommand cmd = new SqlCommand(sqlConsult, conexion);

           SqlParameter imageParam = cmd.Parameters.Add("@imageBytes", System.Data.SqlDbType.Image);
           imageParam.Value = imageBytes;


           SqlParameter idHotelParam = cmd.Parameters.Add("@idHotel", System.Data.SqlDbType.Int);
           idHotelParam.Value = idHotel;

           SqlParameter enlaceParam = cmd.Parameters.Add("@enlace", System.Data.SqlDbType.VarChar);
           enlaceParam.Value = enlace;
           conexion.Open();

           cmd.ExecuteNonQuery(); 
        
            conexion.Close();
        }

       public void ActualizarPublicidad(int idPublicidad, int idImagen, String enlace )
       {
           SqlConnection conexion = new SqlConnection(literalConexion);
           SqlCommand cmd = new SqlCommand();
           cmd.CommandText = "actualiza_publicidad";
           cmd.Connection = conexion;
           cmd.CommandType = CommandType.StoredProcedure;

           SqlParameterCollection parametros = cmd.Parameters;
           parametros.Add(new SqlParameter("@id_publicidad", idPublicidad));
           parametros.Add(new SqlParameter("@id_imagen", idImagen));
           parametros.Add(new SqlParameter("@enlace", enlace));

           conexion.Open();
           try
           {
               cmd.ExecuteNonQuery();
           }
           catch (Exception)
           {  }
           
           conexion.Close();
       }
    }
}
